Slipstream 1.00 Viaccess Smartcard Эмулятор.
Руководство пользователя.
Оговорка.
Пожалуйста помните,
что использование этого программного обеспечения для чего-нибудь другого чем
образовательные цели, может быть незаконно в Вашей стране. Это программное обеспечение
- результат личного образовательного проекта, не преследующего никакого коммерческого интереса.
Краткий обзор прошивки. Особенности.
Предназначена для
всех типов Fun карточек.
Совместима с
наиболее распространёнными Viaccess CAM-модулями.
Совместима с Funvxs1.2 форматом внешнего eeprom.
Поддерживает автоматический
ввод операционных ключей (opkey) (автоабдейт)
Поддерживает ручной
ввод операционных ключей (ремоут)
Имеет отображение различной
(практически всего) информации на экране (осд)
Карточка может
подражать множеству оригинальных карточек, т.е. содержит в себе набор виртуальных карточек.
Multi-Issuer. (так называемое)
Multi-UA. (так называемое)
Lock Control Disable - обходит 24-ую блокировку смены PIN-кода,
существующую на некоторых ресиверах.
Встроенная функция
авто распознавания AVR.
Phoenix/Smart-mouse доступ к eeprom (Феникс handles).
Быстрая работа.
Slipstream совместим
с Funvxs1.2 структурой eeprom. Следовательно, Вы редактируете eeprom Slipstream теми же самыми редакторами, которыми пользуетесь.
Фактически, Ваш старый добрый Funvxs1.2 eeprom файл может использоваться без любых
модификаций вместе с нашими Flash файлом
(ss_flash100.hex) и внутренним eeprom (ss_intee.hex). В
этом релизе представлены также несколько внешних eeprom, которые могут использоваться как матрицы. Как только Вы отредактировали
внешние eeprom, вставив нужные issuerы, иденты
провайдеров и мастер - ключи можно программировать карточку и смотреть TV.
Требования к железу.
Программное
обеспечение предназначено для любой Fun карточки с 24C64
(8kByte) или большим внешнем eeprom. Slipstream поддерживает
выбор типа протокола и PTS, чтобы работать с широким ассортиментом как
встроенных Viaccess модулей, так и
внешних CAM-модулей.
Конфигурирование Slipstream.
Ответы команд.
Ответы на FAC команды
87 04, и 87 06 можно изменять, что необходимо для некоторых ресиверов, требующих
установки этих данных корректно. Ответы на команды консультации также изменяемы
(CAAC ответ), и для
некоторых ресиверов разные. Установка, которая работает в большинстве случаев (ядро
внешнего eeprom) приведена на одной из вложенных матриц в
hex файле.
Флаги конфигурации.
Флаг "LCD"
в секции конфигурации вашего редактора активизирует функцию Lock Control
Disable. Когда он стоит, то прошивка фактически обойдет 24-ые блокировки
PIN-кода, существующие на некоторых ресиверах. Не ставьте флаг "LCD",
если Ваш ресивер не показывает блокировку.
Другие два флага
конфигурации "Control LEDS", и "Key LEDS" не имеют никакого
значения в этой версии.
issuerы и providerы.
Позиция в прошивке
может быть заполнена либо issuer или provider. Slipstream позволяет множеству issuer
работать наряду с множеством provider на одной карточке. Конфигурация их должна
следовать строго этим правилам:
Правила issuer. Первый issuer должен быть помещен в
первую позицию. Все последующие issuerы
должны вписываться по порядку. Полубайт младшего разряда issuerа должен отразить
его позицию. Так, первый issuer имеет младший разряд, имеет 0, второй issuer - 1,
и т.д.
Issuer должен иметь форму FF ** **.
Правила provider. Первый provider должен быть
помещен сразу после последнего issuerа. Любые дополнительные provider должны
следовать в последовательном порядке. Полубайт младшего разряда provider равен
одному из младших полубайтов issuerа чтобы связать его с issuerом, другими
словами; укажите на позицию нужного issuerа. Provider не должен иметь форму FF ** **.
Для providerов апдейтящихся issuerом по UA/PPUA, вставьте МК и UA/PPUA в issuerа.
Для providerов апдейтящихся в provider по UA/PPUA,
вставьте МК и PPUA
в provider.
Если требуется
абдейт по UA, UA поставьте в поле UA issuerа. Всё сделано как в оригинальной карточке. Только issuer
может содержать UA, поле UA в
объекте provider не работает.
Посмотрите любую оригинальную
карточку - она имеет только один issuer с UA и один или несколько provider. Редактируя Slipstream eeprom, Вы поймёте, что числа младших полубайтов issuerов в
первых позициях увеличиваются от 0 по порядку сверху вниз. Редактируйте providerы
в следующей части прошивки по аналогии с issuerами. Полубайт младшего разряда provider
связывает каждого из них с существующими issuerами. Slipstream действительно создаёт
несколько виртуальных карточек в одной, каждая из которых работает в
соответствии с реальной карточкой. Если Вы предпочитаете называть Виртуальные
Карточки как Multi-Issuer Вам решать!
Чтобы привести
младший разряд к ненулевому значению, Вы должны иметь редактор, позволяющий
делать это, такой как FunProm или FunMagic. Picbined не будет работать, если ваш eeprom имеет ytcrjkmrj issuerов.
Пример с тремя issuerами.
Это реальная
карточка, действующая как три виртуальных Viaccess карточки. Пример для Viasat с двумя issuerами FFF400 (обновления по UA в issuerе, используя
mk05) и SVTEuropa с одним issuerом FFF450 (UA обновяет provider, используя mk00):
FFF400 Вставляем UA + mk05 - апдейт Ticket и Nordic
FFF401 Вставляем UA + mk05 - апдейт Europe
FFF452 Вставляем UA, апдейт SVT Европа
010C00
010C10 Используется 0ой issuerа
010C20
010C30 Используется 0ой issuer
010C41 Используется 1ый issuer
009C02 Используется 2ой issuer. Вставьте mk00 здесь
Общее количество issuerов
и provider в настоящее время ограничено до 23. Даже если их можно заполнить, то
это не имеет смысла, ставить больше issuerов чем providerов.
Не забывайте ставить
операционный ключ 08 для providerов, поскольку он используется как аварийный. Других
примеры редактирования внешнего Eeprom смотрите в
прилагаемых файлах.
Автоапдейт.
Slipstream поддерживает
как автоапдейт на группу карт, так и на каждую отдельно.
Для автоапдейта ключа группы, используется полный PPUA (SA + CustWp).
CustWp == 0 - не всегда, так как если установлен
0, она будет работать только если один клиент в группе получает апдейт. Это
должно препятствовать карточке сталкиваться с операцией неправильного автоапдейта.
Ручной ввод ключей (ремоут).
Ручной ввод opkey реализован, используя меню смены PIN-кода вашего ресивера.
Используемый формат – MultiMac с префиксом. Удостоверьтесь, что сначала введены
4 цифры префикса.
key08 = 1150
key09 = 1250
key0A =1350
key0B =1450
key0C =1550
key0D =1650
key0E =1750
key0F =1850
Затем вводятся 8 групп
по четыре цифры. Если ваш ресивер имеет 24-ую блокировку PIN-кода, Вы должны
использовать OSD.
OSD.
OSD реализован с помощью Subscription Information
и лейбла providerа. Эти поля обмениваются информацией о opkeys, которые обрабатывает Slipstream. Как только лейбл соответствует
активному providerу, определенным каналом выбранным на вашем ресивере, он будет
заменен OSD информацией. Все
другие поля лейблов providerов покажут лейблы такие, как отредактировано в Вашем
eeprom файле. Управлять OSD можно с помощью
PurchaseThreshold/MaturityRating
(в дальнейшем PT/MR). Пользуйтесь ими в зависимости от того, какой из них Вы
предпочитаете или имеете в ресивере. Помимо управления OSD функциями PT/MR.может использоваться, чтобы ввести команды в Slipstream.
OSD функции и команды
объясняются ниже:
OSD функции
Чтобы воспользоваться
OSD функциями, введите
в PT/MR цифру соответствующую номеру
функции. Ниже – список того, что отобразится в поле лейбла активного providerа
для каждой OSD функции. Заданной по
умолчанию функцией является 2.
функция 0: Лейбл. отображается лейбл providerа как
отредактировано в eeprom файле.
Отображаетя для
всех providerов.
функция 1: Версия. отображается название версии Slipstream,
например "Slipstream 1.00"
функция 2: Ключ.
отображает текущий операционный ключ в HEX формате от последнего активного providerа. Следовательно, если
активный канал на ресивере кодирован и открывается, ключ будет отображён. Если
канал кодирован, но не открывается, будет отображена надпись "Key 0x
unknown" (ключ 0x неизвестен), где x - HEX представление индекса ключа (8,9, A.., F).
функция 3: Объекты. отображает Идент issuerа и объект providerа,
например "FFF400-010C30".
функции 8-15: Функции ключей. отображают
определенный ключ, сохраненный в eeprom, выбранном
номером функции. Ключ отображен независимо от того, если это – правильный он
или нет. Пожалуйста заметьте, что все числа являются десятичными. Десятичные
представлены как HEX:
8=8, 9=9,10=A, 11=B, 12=C, 13=D, 14=E и 15=F.
Для всех OSD функций кроме функции 0, в меню Subscription Information записывается и
показывает хронологию и информацию о том, какие opkeys были изменены. Для последовательного отображения информации о том,
когда какие ключи начали использоваться, сначала выполните форматирование секций
eeprom, содержащих информацию о opkeys (формат метаданных). Это описано в Командах ниже.
Subscription Information меню для выбранного providerа
будет содержать список из 8 массивов:
START DATE STOP DATE CLASS THEME LEVEL
01/01/1980 01/01/1980 - 77 08
01/01/1980 01/01/1980 - 77 09
09/02/2003 10/02/2003 - 115 110
01/01/1980 01/01/1980 - 77 11
10/02/2003 01/01/1980 - 115 12
01/01/1980 01/01/1980 - 77 13
21/01/2003 24/01/2003 - 200 14
01/01/1980 01/01/1980 - 77 15
START DATE => дата, когда opkey был введён, либо автоапдейтом либо
ремоутом.
STOP DATE => дата, когда opkey последний раз использовался.
Если START DATE = STOP DATE предыдущего ключа,
это означает, что прописавшийся ключ - "следующий".
CLASS => не используется.
THEME => информация о том, как opkey был модифицирован.
Посмотрим на THEME как на "xyz":
OSD декодирование/кодирование информации.
x: изменен с
помощью:
0 => автоапдейт
использующий SA адресацию,
1 => автоапдейт
использующий UA адресацию,
2 => ручной ввод (ремоут)
y: изменен с
помощью:
0 => автоапдейт по providerу,
1 => автоапдейт по issuerу. Только для автоапдейта.
z: индекс
используемого мастер - ключа. Только для автоапдейта.
LEVEL => Индекс opkey.
Если opkey находится в использовании активным каналом
то 100 или 200 добавляется к индексу.
100 + индекс
подразумевает, что ключ находится в использовании и он правильный.
200 + индекс
подразумевает, что ключ находится в использовании, но он, сохраненный в
карточке не рабочий.
Так, взглянув в
пример выше с 8 массивами информационных данных, мы можем сказать что:
Ключ в
использовании активным каналом - opkey 10, и это успешно
используется для расшифровки изображения. STOP
DATE говорит нам, что opkey 10 находится в
использовании, так как сегодняшняя дата - 10:th февраля.
Opkey 10 был AU, пришёл 9го февраля, используя UA по issuerу с mkey 5.
Opkey 12 был AU, пришёл 10го февраля (сегодня) тем же макаром что и opkey 10.
START DATE opkey 12 = STOP DATE opkey 10, это означает, что opkey 12 - "следующий ключ" пока не
используемый.
Opkey 14 был изменён ремоутом.
Некоторые ресиверы
сортируют массивы на основании дат. Это означает что порядок в котором массивы представлены,
может отличаться от этого примера. Не забудьте проверять значение LEVEL, чтобы не потерять
последовательность.
Команды.
Чтобы посылать
команду Slipstream, введите номер команды в меню PT/MT. Предварительно выбранная OSD функция не изменится.
функция 7: формат
метаданных, сортирует всех providerов. Все даты будут отсортированы до
01/01/1980 и THEME установлены на 77.
Никаких другие
команды нет в этой версии Slipstream.
Феникс handles.
Особенность Slipstream
ещё в том, что специальные команды делают запись и чтение внешнего eeprom возможным, не перепрограммируя AVR controller
с загрузчиком. Доступ к eeprom возможен через
любой Феникс или Smartmouse, совместимые с ISO7816 interface.
Редактор, прилагающийся
к Slipstream предлагает более быстрый путь к данным, по сравнению с
редактором/программатором, имеющимся у Вас, который сначала пишет программу поверх
AVR со специальным загрузчиком для шлюза. В Slipstream этот шлюз уже встроен.
Команды обращения
к eeprom CB 25 и CB 26 описаны ниже.
Максимум можно
делать длину L байта – 100 dec. Все цифры в HEX.
>> обозначает передачу данных в направлении к
карточке.
<< обозначает передачу данных в направлении из
карточки.
Read instruction:
>> CB 25 < 2 bytes of address > < 1
byte, length L >
<< 25
<< < L bytes of data returned from card >
<< 90 00
Write instruction:
>> CB 26 < 2 bytes of address > < 1
byte, length L >
<< 26
>> < L bytes of data transferred to card >
<< 90 00
Релиз.
1.00 релиз состоит
из следующих файлов:
slipstream.htm Это Руководство пользователя.
ss_flash100.hex AVR flash HEX файл.
ss_intee.hex AVR внутренний eeprom HEX файл.
ss_extee_viasat2i.hex Внешний eeprom
HEX файл - пример/матрица для Viasat с двумя issuerами.
ss_extee_senda.hex Внешний eeprom HEX файл - пример/матрица для Senda
ss_extee_comhem_lcd.hex Внешний eeprom
HEX файл - пример/матрица для Comhem.
Этому файлу
активизировали LCD и попробовали по другому поставить providerы; потому что
некоторые аппараты не отображают список providerов, кроме одного.
ss_extee_loaded.hex Внешний eeprom HEX файл -
пример/матрица загружен большим количеством issuerов и providerов, в которых Вы
будете нуждаться... Набор доступа к каналам Viasat.
Информация релиза.
Версия: 1.00,
Первый паблик вышел
в марте 2003г.
Автор: Dauntless
Специальное спасибо: всем, кто способствовал - Вы
знаете, кому!
Условия использования: не используйте
программное обеспечение для других целей чем образовательные. Не переделывайте
и не дополняйте релиз файлами без одобрения авторов. Нарушение любого из этих условий
использования считают непочтительным.
Перевод на русский
язык: Billy Kotus (kotus@pub.sovtest.ru) пишите письма.